home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / sim.arc / SIMS.DOC < prev    next >
Encoding:
Text File  |  1987-04-07  |  59.8 KB  |  1,491 lines

  1.                                 - 1 -
  2.  
  3.  
  4.                       SELECT I MENU SYSTEM (SIMS)
  5.  
  6.                        Version 1.00    Release A
  7.                             April 7th, 1987
  8.  
  9.                   Copyright (c) 1984 David Thomas Stewart
  10.                          All rights reserved
  11.  
  12.                                 - 2 -
  13.  
  14.   DISCLAIMER:
  15.  
  16. SIMS has been placed in the public domain by the author, David Stewart,
  17. and a $15 registration fee is requested if you use the program and find
  18. it to be beneficial.  In any case, please feel free to copy and share
  19. this program with others.  I will only support those who contribute
  20. toward the development of this SHAREWARE product, but I will accept
  21. useful suggestions from ANYBODY!
  22.  
  23. SIMS is provided on an "as is" basis.  Any damages arising from the
  24. use of this program are entirely the responsibility of the user; i.e. the
  25. author, David Stewart, cannot be held responsible for any damages.
  26.  
  27.   CREDITS:
  28.  
  29. The program system contained within was created between April and
  30. July, 1984 by David Thomas Stewart and the following persons deserve
  31. their respective credit:
  32.  
  33. Rick Hillier - Beta testing
  34. Dave Knight  - Beta Testing
  35.  
  36. Personal thanks to all those involved, especially my family for their time
  37. and understanding during the development of this system.
  38.  
  39. The address at which to send the registration fee is:
  40.  
  41.   David Thomas Stewart
  42.   Synergy Development
  43.   P.O. Box 3132
  44.   Cambridge, Ontario
  45.   Canada     N3H 4S6
  46.  
  47.                                 - 3 -
  48.   Contents
  49.  
  50. Introduction...........................................   4
  51.  
  52. PART I  / GETTING STARTED
  53.  
  54.  1 / Description of the SELECT I MENU SYSTEM...........   6
  55.  2 / Initial Setup.....................................   6
  56.  3 / Using SIMS........................................   7
  57.  4 / The SAMPLE menus..................................   8
  58.  
  59. PART II  / MENU CONTROL LANGUAGE (MCL)
  60.  
  61.  5 / An Introduction to MCL............................  10
  62.  6 / The VIDEO CONTROL Commands........................  11
  63.  7 / The OPTION CONTROL Commands.......................  14
  64.  8 / Procedures........................................  17
  65.  9 / User Defined Fields...............................  18
  66. 10 / Special Commands..................................  19
  67. 11 / Effective MENU Creation...........................  20
  68.  
  69. PART III / MAKING A MENU
  70.  
  71. 12 / Creating a SOURCE MENU............................  22
  72. 13 / The MAKEMENU Program..............................  23
  73.  
  74. PART IV  / MENU MANAGEMENT
  75.  
  76. 14 / Using Subdirectories..............................  25
  77. 15 / Using BATCH Processing and DOS Commands...........  26
  78. 16 / Security and Passwords............................  28
  79. 17 / Arguments.........................................  29
  80.  
  81. PART V  / APPENDICES
  82.  
  83. Appendix A / Summary of MCL Reference Commands.........  31
  84. Appendix B / Error Messages............................  33
  85. Appendix C / Customer Support..........................  35
  86.  
  87. Index..................................................  36
  88.  
  89.                                 - 4 -
  90.  
  91.   INTRODUCTION
  92.  
  93. Congratulations for downloading the SELECT I MENU SYSTEM. This system has
  94. many special features and functions that makes it the perfect "environment"
  95. for the office or home. Whether you're a computer professional or a novice,
  96. you'll find the  SELECT I MENU SYSTEM (SIMS) simple to use.
  97.  
  98. SIMS is capable of converting text source files into menus. These menus can
  99. provide the vital links between the machine and the user. Minimal training
  100. is necessary to use SIMS. Best of all, you can eliminate all of the time
  101. spent on training your users about subjects that have nothing to do with the
  102. applications (DOS operations), and increase overall productivity.
  103.  
  104. To run the system you will need either a IBM PC or compatible. Two disk
  105. drives or a hard disk, DOS V2.00 or greater, and at least 128k of memory
  106. is all that is required. Either the color or monochrome display adapter
  107. may be used with the system. The EGA is also supported.
  108.  
  109. The package is divided into four sections for user convenience:
  110.  
  111. MAKEMENU.EXE  - The text source file to menu conversion program.
  112.  
  113. MENU.COM      - The actual menu run-time module.
  114.  
  115. SAMPLE MENUS  - Several sample menus are included in the archive.
  116.  
  117. MANUAL        - All questions or problems encountered by the
  118.                 user should be diagnosed and solved here.
  119.  
  120. For your convenience, the manual has been divided into five
  121. sections as described below:
  122.  
  123. Part I    Will describe the SIMS environment to get get you started using
  124.           your new system right away.
  125.  
  126. Part II   Describes  MCL, the  language used by the system to control
  127.           and format "customized" menus. This section explains the language
  128.           in detail with several examples.
  129.  
  130. Part III  Explains all of the steps necessary to construct a menu. It gives
  131.           diagnostic support in all of the relevant areas to get you out of
  132.           any trouble that you may find yourself in.
  133.  
  134. Part IV   "Teaches" you how to use the supplied programs to maximum advantage
  135.           and to create the best menu  system  to suit your expanding and
  136.           changing needs.
  137.  
  138. Part V    The Appendices, contain valuable reference material about the
  139.           system, summarizes MCL and the special commands used throughout
  140.           the system. It also contains sections on Customer Support
  141.           and the Update Policy.
  142.  
  143. It is suggested that you become familiar with this manual BEFORE you begin
  144. using the system. After that the Appendices and other reference sections
  145. should keep you up and running. So take a few minutes now and get to know
  146. your new system - and remember that a little extra time spent now may save
  147. you hours later on.
  148.  
  149.                                 - 5 -
  150.  
  151.   PART I  / GETTING STARTED
  152.  
  153.  1 / Description of the SELECT I MENU SYSTEM...........   6
  154.  2 / Initial Setup.....................................   6
  155.  3 / Using SIMS........................................   7
  156.  4 / The SAMPLE menus..................................   8
  157.  
  158.                                 - 6 -
  159.  
  160.   1  / Description of the SELECT I MENU SYSTEM
  161.  
  162. SIMS can current only be used if a program allowing for the
  163. editing of text files is already available. Since an editor
  164. is a standard part of most systems, this should not present
  165. a problem (EDLIN will suffice). The menu designer  uses the
  166. editor to create a source file for SIMS. The file then goes
  167. through the  conversion program MAKEMENU. Any errors in the
  168. menus are then reported and can easily  be corrected. Menus
  169. are then  ready for  execution  using  the  run-time module
  170. incorporated in SIMS. The OPTIONS coded  into the  menu are
  171. now accessible to the user.
  172.  
  173.   For example:
  174.  
  175. A company  may  regularly  use a word processor, accounting
  176. programs, spreadsheets, and a data base program. With SIMS,
  177. access  to  these  programs is much faster, convenient, and
  178. user-friendly. Now, any OPTION can be called up by the user
  179. who  uses  the  menu  and  who  knows the  password if this
  180. security  feature  has  been  implemented. Total freedom is
  181. given to the menu creator  regarding the screen layout, and
  182. the OPTIONS specified. An infinite number  of  menus can be
  183. incorporated  into  the  system,  although  the  only limit
  184. imposed is the available disk space.
  185.  
  186.  
  187.   2  / Initial Setup
  188.  
  189. The files COMMAND.COM and EDLIN.COM are required in the current
  190. directory for the supplied demo menus to operate fully.
  191.  
  192. To verify if the system is operational, under the DOS
  193. ready prompt type MENU DEMO and press ENTER.
  194.  
  195. This will load and execute a demonstration menu that allows you
  196. to use DOS commands, call other demonstration menus as well as
  197. use EDLIN and MAKEMENU to create, edit, and run customized menus.
  198. Follow the instructions, and go to the help menu if you run
  199. into difficulties.
  200.  
  201.                                 - 7 -
  202.   3  / Using SIMS
  203.  
  204. SIMS is an easy to use, productive, and rapid way to gain access
  205. to the programs on your disks. To optimize the access procedure
  206. the "point" theory was incorporated. The special keys on the
  207. cursor pad that are used to point the highlight bar are shown below:
  208.  
  209.                 Home 7     Up  8         9
  210.            |
  211.     Enter <-    Left 4         5   Right 6
  212.  
  213.                 End  1    Down 2         3
  214.  
  215.   Home         - Selects (Highlights) first OPTION entry
  216.   End          - Selects last OPTION entry
  217.   Up / Left    - Selects previous OPTION entry
  218.   Down / Right - Selects next OPTION entry
  219.   Enter        - Executes current highlighted OPTION
  220.  
  221. To invoke an UNLOCKED menu, type under DOS, MENU DRIVE:\PATH\MENUNAME
  222. where DRIVE: is the drive, PATH is the path of the menu, and MENUNAME is the
  223. execute (if AUTOENTER is on) the selection. Lowercase is automatically
  224. converted to upper case, therefore no lowercase OPTIONs are allowed.
  225. Sound is used in SIMS to indicate an error condition. The only non-fatal
  226. errors to date are if an invalid password is entered or if a program
  227. specified in an OPTION command is not found. After the "Beep" SIMS will
  228. return to the select mode of the current menu. The fatal errors always "Beep"
  229. and return to DOS. They can be found in Appendix B / Error Messages,
  230. under SIMS run-time module Errors.
  231.  
  232.  
  233.   TECHNICAL INFORMATION
  234.  
  235. SIMS is a memory resident program which reserves 12288 (12k) bytes of memory
  236. for its use, including program (run-time) area. The menu is loaded into
  237. the area immediately after the run-time module and executed. All video updates
  238. are handled through BIOS interrupt calls for compatibilty.
  239.  
  240. Memory resident programs such as PRINT.COM, MODE.COM, ramdisks, spoolers,
  241. and the like should be installed before SIMS is activated. SIMS uses
  242. the load area as temporary storage and any program trying to reside there
  243. permanently may be overwritten by the next program loaded.
  244.  
  245.   SIMS MEMORY MAP:
  246.  
  247.       Size:   Contents:
  248.         4k    SIMS run-time module
  249.         7k    Menu load space (actual size reported in MAKEMENU)
  250.       + 1k    Data area
  251.        12k    Total memory used by SIMS
  252.       ???k    Program load area, remaining available RAM memory
  253.  
  254.  
  255.      This map will change in the future, through rewrites and requests...
  256.  
  257.                                 - 8 -
  258.  
  259.   4  / The SAMPLE menus
  260.  
  261. There are eight supplied demo menus in the SIMS archive. They demonstrate
  262. the various aspects of the system and it's abilities. They are:
  263.  
  264.  
  265. Name of Menu:   Function:
  266. ---------------------------------------------------------------------
  267. DEMO            Master Demo Menu - connects all menus together
  268.  
  269. DEMOHELP        Master Demo Help - gives help for DEMO
  270.  
  271. CREATE          Creation Menu    - automates EDLIN / MAKEMENU process
  272.  
  273. VIDEODEM        Video Demo       - demonstrates video features
  274.  
  275. PROCDEMO        Procedure Demo   - demonstrates procedure features
  276.  
  277. USER            Blank Sample     - a user "fill in the blanks" menu
  278.  
  279. SECURDEM        Security Demo    - demonstrates security features
  280.  
  281. SPECIAL         Locked Menu      - used with SECURDEM menu
  282.  
  283.  
  284.  
  285.   DEMO MENU STRUCTURE
  286.  
  287.  
  288.  
  289.                           DEMO
  290.                             |
  291.                         DEMOHELP
  292.       ----------+-----------+-----------+--------+--------
  293.      |          |           |           |        |        |
  294.   CREATE    PROCDEMO    VIDEODEM    PROCDEMO    USER    SECURDEM
  295.                                                           |
  296.                                                         SPECIAL
  297.  
  298.  
  299. For further information on these menus, examine the menu source code,
  300. or execute the menu from DOS.
  301.  
  302.                                 - 9 -
  303.  
  304.   PART II  / MENU CONTROL LANGUAGE (MCL)
  305.  
  306.  5 / An Introduction to MCL............................  10
  307.  6 / The VIDEO CONTROL Commands........................  11
  308.  7 / The OPTION CONTROL Commands.......................  14
  309.  8 / Procedures........................................  17
  310.  9 / User Defined Fields...............................  18
  311. 10 / Special Commands..................................  19
  312. 11 / Effective MENU Creation...........................  20
  313.  
  314.                                 - 10 -
  315.  
  316.   5  / An Introduction to MCL
  317.  
  318. MCL (Menu Control Language) is a versatile tool for creating, and
  319. maintaining  user  MENUs. MCL  can be divided  into five distinct
  320. command areas known as VIDEO CONTROL, OPTION CONTROL, PROCEDURES,
  321. USER DEFINED FIELDS, and SPECIAL COMMANDS.
  322.  
  323. VIDEO CONTROL commands allow the user to create any screen design
  324. or format required by the application. Because of this the format
  325. can be adapted to suit a  variety  of business or personal needs.
  326.  
  327. Macro  commands  such as BOX, FIELD and FILL  simplify the screen
  328. design process, while the color commands allow full exploitation
  329. of the colors and video attributes that both the  Monochrome and
  330. the Color Graphics adapter offer.
  331.  
  332. OPTION CONTROL commands tell the menu what  selections there are.
  333. These options allow the user to create a list of options that can
  334. be placed anywhere within the required format. This is done quite
  335. simply by  adjusting the  coordinates of  the  OPTION command. It
  336. should be  noted that it is necessary to use only OPTION commands
  337. in this area.
  338.  
  339. The PROCEDURES allow additional MCL commands to be executed before
  340. selection and before / after the execution of an OPTION.
  341.  
  342. The  USER DEFINED FIELDS  tell the menu  where to place important
  343. control information. The five fields supported to date are:
  344.  
  345. TIME / DATE / KEYBOARD STATUS / PASSWORD / ARGUMENT
  346.  
  347. The SPECIAL COMMANDS tell  the  menu about the  configuration the
  348. menu should take on, if it  should have integral security, and so
  349. forth. There are only a few commands that apply in this category.
  350.  
  351.  
  352.   GENERAL MENU STRUCTURE
  353.  
  354.  
  355.                  Title Comments (optional)
  356.                  Security LOCK  (optional)
  357.                       Screen Setup
  358.                       OPTION  list
  359.                Extra Screen Setup (optional)
  360.                    Procedures (optional)
  361.                          END
  362.  
  363.  
  364. Lowercase may be used for ALL commands. As an illustrative example both
  365. of the  following  statements are legal  and perform the same function:
  366.  
  367.         UNDERLINE BRIGHT        underline bright
  368.  
  369. Regardless of the choice of case, in the OPTION statement, please use it
  370. throughout the command. OPTION is case sensitive. "MENU" and "menu" will
  371. work, but "Menu" will not, as it is not recognized as a reserved command.
  372.  
  373.                                 - 11 -
  374.  
  375.   6  / The VIDEO CONTROL Commands
  376.  
  377. The colors available are:
  378.  
  379. DIM    - BLACK   BLUE   GREEN   CYAN   RED   MAGENTA   BROWN   WHITE
  380. BRIGHT - GREY    BLUE+  GREEN+  CYAN+  RED+  MAGENTA+  YELLOW  WHITE+
  381.  
  382. There are several commands which are specific to this system. Among
  383. these are the following:
  384.  
  385. .(x,y)"TEXT"         - Using this command, the creator can place text
  386.                        at any coordinates on the screen.
  387.  
  388.                        Eg.  .(50,9)"Title for menu"
  389.                             ."delimited text"
  390.  
  391.                        A color change statement - FOREGROUND, BACKGROUND,
  392.                        INVERSE, NORMAL, INVISIBLE, and SETATTR may be placed
  393.                        in between the above two types of text commands.
  394.  
  395.                        Eg.  NORMAL
  396.                             SETATTR
  397.                             .(10,10)"NORMAL "
  398.                             INVERSE
  399.                             SETATTR
  400.                             ."INVERSE TEXT"
  401.                             NORMAL
  402.                             SETATTR
  403.                             ." NORMAL AGAIN"
  404.  
  405. BACKGROUND(c)       - Will immediately change the internal background
  406.                       color to c. To set the color, use a SETxxxx
  407.                       command (see below). Only the 8 DIM colors may be
  408.                       used for background in the current version.
  409.  
  410.                       Eg.  BACKGROUND(GREEN)
  411.  
  412. BLINK c             - Blink is a command which sets or resets the
  413.                       current blink status, c can be ON or OFF.
  414.  
  415.                       Eg.  BLINK ON
  416.  
  417. BOX(a,b)-(x,y),"z"  - Will place a box along the edges defined by the
  418.                       top left hand coordinates (a,b) to the bottom
  419.                       right coordinates (x,y), using ASCII character
  420.                       z for the operation.
  421.  
  422.                       Eg.  BOX(3,8)-(30,15),"*"
  423.  
  424.                                 - 12 -
  425.  
  426. BORDER(c)           - Will immediately change the screen border color
  427.                       (Color/Graphics adapter only) to c. It is best
  428.                       to leave this as the last statement before the
  429.                       END (and before the procedures if they are being used)
  430.                       so that the screen updates are invisible to the viewer.
  431.                       This command does NOT affect the Monochrome or EGA
  432.                       adapter cards.
  433.  
  434.                       Eg.  BORDER(MAGENTA)
  435.  
  436. FIELD(a,b)-(x,y)    - Will fill the area defined by (a,b)-(x,y) with
  437.                       spaces, using the current write attribute, SETATTR.
  438.                       This command is used to clear a box of text.
  439.  
  440.                       Eg.  FIELD(0,0)-(79,24)
  441.  
  442. FILL(x,y),"z",s     - This will fill the area starting at (x,y) with
  443.                       ASCII character "z", for s characters. If the
  444.                       length specified exceeds the right side of the
  445.                       screen (x = 79), then it will continue on the
  446.                       next line at the left margin (x = 0).
  447.  
  448.                       Eg.  FILL(0,6),"=",80
  449.  
  450. FOREGROUND(c)       - Will immediately set the internal foreground
  451.                       color to c. To perform a screen action using
  452.                       the new color, a SETxxxx operation must be
  453.                       performed where xxxx is the requested attribute.
  454.  
  455.                       Eg.  FOREGROUND(BLUE+)
  456.  
  457. INVERSE             - Immediately sets internal foreground to BLACK,
  458.                       background to WHITE, and blink status to OFF.
  459.  
  460.                       Eg.  INVERSE
  461.  
  462. INVISIBLE           - Immediately sets internal foreground to BLACK,
  463.                       background to BLACK, and blink status to OFF.
  464.  
  465.                       Eg.  INVISIBLE
  466.  
  467. NORMAL              - Immediately sets internal foreground to WHITE,
  468.                       background to BLACK, and blink status to OFF.
  469.  
  470.                       Eg.  NORMAL
  471.  
  472. SCREEN(m)           - Clears the screen and tells the video adapter
  473.                       if it should use color burst or not. The valid
  474.                       options for m (mode) are B (burst) and N (noburst).
  475.                       Depending on the type of monitor used, N may improve
  476.                       overall screen clarity.
  477.  
  478.                       Eg.  SCREEN(N)
  479.  
  480.                       NOTE: If SCREEN has been set OFF by the SCREEN OFF
  481.                       command, then the above command will perform a null
  482.                       operation until a SCREEN ON command is issued.
  483.  
  484.                                 - 13 -
  485.  
  486. SETARGUE            - Using the internal color settings, the current
  487.                       argument field color is set. Default color is NORMAL.
  488.  
  489.                       Eg.  SETARGUE
  490.  
  491. SETATTR             - Using the internal color settings, the current
  492.                       write attribute color is set. Default color is NORMAL.
  493.  
  494.                       Eg.  SETATTR
  495.  
  496. SETDATE             - Using the internal color settings, the current
  497.                       date field color is set. Default color is NORMAL.
  498.  
  499.                       Eg.  SETDATE
  500.  
  501. SETHIGH             - Using the internal color settings, the current
  502.                       highlight bar color is set. Default color is INVERSE.
  503.  
  504.                       Eg.  SETHIGH
  505.  
  506. SETOPTION           - Using the internal color settings, the current
  507.                       option text color is set. Default color is NORMAL.
  508.  
  509.                       Eg.  SETOPTION
  510.  
  511. SETPASS             - Using the internal color settings, the current
  512.                       password field color is set. Default color is
  513.                       INVISIBLE.
  514.  
  515.                       Eg.  SETPASS
  516.  
  517. SETSTAT             - Using the internal color settings, the current
  518.                       status field color is set. Default color is NORMAL.
  519.  
  520.                       Eg.  SETSTAT
  521.  
  522. SETTIME             - Using the internal color settings, the current
  523.                       time field color is set. Default color is NORMAL.
  524.  
  525.                       Eg.  SETTIME
  526.  
  527. UNDERLINE c         - Immediately changes the internal foreground to
  528.                       underline on the Monochrome Adapter. The valid values
  529.                       for c are DIM or BRIGHT, for the desired underline
  530.                       intensity. (It appears as BLUE or BLUE+ on the
  531.                       Color Graphics Adapter).
  532.  
  533.                       Eg.  UNDERLINE BRIGHT
  534.  
  535.                                 - 14 -
  536.  
  537.   7  / The OPTION CONTROL Commands
  538.  
  539. For any MENU to be effective, there must be options to select from.
  540. In this system, there are three statements that control these selections:
  541.  
  542. OPTION START             - denotes the start of the option block.
  543.  
  544. OPTION END               - denotes the end of the option block.
  545.  
  546.  
  547. OPTION(k,x,y),"t","c",o  - places an OPTION in the OPTION table.
  548.                            Details on the parameters below.
  549.  
  550. k   - Key. Number (0-9), punctuation (!@#$%^&*()-_=+[]{};:'"`~,.<>/?\|).
  551.       Function keys are defined by (F1-F10). Alternate, Control, and
  552.       Shift Function Key may be specified by applying a prefix of A,C, or
  553.       S respectively. Eg. AF5 is Alt-F5. Escape may be specified by ESC,
  554.       Insert by INS, and Delete by DEL. No lowercase is allowed here, as
  555.       it will automatically converted to uppercase during conversion.
  556.  
  557. x,y - Coordinates to place option text "t". This is in the standard range
  558.       (0-79,0-24) and is written to the screen using the OPTION attribute
  559.       To set this color use SETOPTION, to set the highlight bar use SETHIGH.
  560.  
  561. "t" - Option text. Can be up to 80 characters in length. The text is
  562.       highlighted when it is the current selected OPTION.
  563.  
  564. "c" - Command to be executed upon invocation of the option. It can be
  565.       no more than 80 characters in length.
  566.  
  567.       There are four types of commands that may be executed:
  568.  
  569.       1) Program. This includes batch files and internal DOS commands.
  570.  
  571.         Format:  "DRIVE:\PATH\FILENAME.EXT PARAMETERS"
  572.  
  573.         For batch files and internal commands use the following:
  574.  
  575.         "DRIVE:\PATH\COMMAND.COM/C XXXXX PARAMETERS"
  576.  
  577.         Where DRIVE is the drive where the program is located on;
  578.         PATH is the path related to the current directory;
  579.         FILENAME.EXT is the FULL filename (It will NOT assume
  580.         an extension of .EXE or .COM), and PARAMETERS are any parameters
  581.         that may be required by the program. For the special case of
  582.         DOS batch / internal commands, XXXXX represents the command.
  583.         and DRIVE:\PATH is where the system can find a copy
  584.         of COMMAND.COM, the command processor.
  585.  
  586.         Eg.1 "\CHKDSK.COM/F/V" will load and run CHKDSK from the root
  587.              directory, with the options /F/V.
  588.  
  589.         Eg.2 "A:\COMMAND.COM/C DIR B:/W" will give a wide directory
  590.              of the B: drive, assuming COMMAND.COM is on drive A:, in the
  591.              root directory.
  592.  
  593.                                 - 15 -
  594.  
  595.       2) MENU. Another menu may be called in and control given to it.
  596.  
  597.         Format: "MENU DRIVE:\PATH\MENUNAME"
  598.  
  599.         Where DRIVE is the drive in which the menu is located;
  600.         PATH is the path, and MENUNAME is the .MEN menu to load.
  601.  
  602.         Eg.1 "MENU \DAVE" will load DAVE.MEN from the root directory
  603.              and transfer control to it.
  604.  
  605.  
  606.         Eg.2 "MENU LEVEL2" will load LEVEL2.MEN from the current
  607.              directory and transfer control to it.
  608.  
  609.  
  610.       3) EXIT to DOS. This returns the user to DOS (optional).
  611.  
  612.         Format: "EXIT"
  613.  
  614.         This will release the memory taken by SIMS and return to
  615.         the DOS prompt. This is the ONLY way to return to DOS, barring
  616.         a fatal error condition, see Appendix B / Error Messages.
  617.         CNTL-ALT-DEL will reboot the computer; CNTL-BREAK has no effect on
  618.         the SIMS environment and will NOT return the user to DOS.
  619.  
  620.  
  621.       4) NULL operation. This is primarily used to debug screen layouts
  622.         before the OPTIONs are created. It is also used in cases where
  623.         text may be displayed in an procedure, and no operation is to take
  624.         place, as in help and demonstration menus, hence a NULL operation.
  625.  
  626.         Format: "NULL"
  627.  
  628.         This will do absolutely nothing when selected.
  629.  
  630.  
  631. A change directory (CD) prefix may be included in your command string.
  632.  
  633.       Eg.1 "CD \,EXIT" will bring the user to the root directory and exit
  634.            to DOS.
  635.  
  636.       Eg.2 "CD \GAMES,MENU FUN" will bring the user into the GAMES directory
  637.            and execute the menu FUN.
  638.  
  639.       Eg.3 "CD \MANAGER\ACCT,SERIOUS.EXE/P/D" will bring the user into the
  640.            \MANAGER\ACCT directory and execute the program SERIOUS.EXE,
  641.            passing it the parameters /P/D.
  642.  
  643. All of the special commands - MENU, EXIT, NULL, and CD - must be either
  644. in all upper case or all lower case. "MENU MASTER and "menu MASTER" are
  645. both valid, but "Menu MASTER" is not. Likewise "EXIT" and "exit" are legal
  646. but not "Exit". The same applies to NULL and CD.
  647.  
  648.                                 - 16 -
  649.  
  650. o   - Options. There are eight options available with each OPTION
  651.       statement. There are (in the 12 phases of execution):
  652.  
  653.       1.  <<< SELECT PROCEDURE >>>  (optional)
  654.  
  655.       2.  ,pass="ABC"  - Activate password of "ABC" before execution.
  656.                          Passwords may be up to eight characters long.
  657.  
  658.       3.  <<< EXECUTE PROCEDURE >>>  (optional)
  659.  
  660.       4.  ,argue      - Passes an external argument to the program.
  661.       5.  ,clear      - Clears the screen.
  662.       6.  ,novideo    - Turns off the video. Restore with DOS CLS command.
  663.                         (The Monochrome display will not restore the screen.)
  664.       7.  ,noclock    - Disable displaying of time.,
  665.  
  666.       8.  <<< EXECUTE PROGRAM / MENU / NULL OPERATION >>>
  667.  
  668.       9.  ,return     - Returns to directory the system was in before execution
  669.                         otherwise stay in the current directory.
  670.       10. ,beep       - Chirp the speaker after program is complete.
  671.       11. ,wait       - Prompts the user to "Press a key to continue..."
  672.  
  673.       12. <<< DONE PROCEDURE >>>    (optional)
  674.  
  675. The MENU and EXIT commands allow only the password option (,pass="ABC")
  676. to be used as an option in the OPTION command.
  677.  
  678. Various OPTION examples:
  679.  
  680. option(F1,10,10)" This is F1 ","MENU MASTER",pass="DAVE"
  681.  
  682. This option will load and transfer control to the menu MASTER if the
  683. correct password of DAVE is entered on the password input field.
  684.  
  685. option(AF2,10,11)" This is Alt-F2 ","\COMMAND.COM/C DIR/P",clear,wait
  686.  
  687. This option will load COMMAND.COM from the root directory on the current drive
  688. and then will execute a DIR/P. The screen is cleared before execution and a
  689. message is displayed to "Press a key to continue" after execution.
  690.  
  691. option(Q,10,12)" This is Q ","CD \SYSTEM,UTIL.COM",return
  692.  
  693. This option will move to the \SYSTEM directory and execute the program
  694. UTIL.COM. After execution it will return to the directory the system was
  695. in prior to execution.
  696.  
  697. option(ESC,10,13)" ESC to DOS ","CD \,EXIT"
  698.  
  699. This option will move to the root directory and exit to DOS.
  700.  
  701. option(F9,15,20)" Move to Root Directory ","CD \,NULL"
  702.  
  703. This option will bring the user to the root directory and return to the
  704. select mode of the current menu.
  705.  
  706.                                 - 17 -
  707.  
  708.   8  / Procedures
  709.  
  710. Procedures are sets of actions associated with a specific OPTION that
  711. will be executed upon a certain condition. SIMS supports three classes
  712. of procedures - SELECT , EXEC, and DONE.
  713.  
  714. SELECT  procedures occur when the option is highlighted (selected).
  715.  
  716. EXECUTE procedures occur just prior to the program/menu loading,
  717.         or the execution of a NULL operation.
  718.  
  719. DONE    procedures occur when program execution is complete.
  720.         A DONE procedure is not applicable to a loaded menu.
  721.  
  722. Procedures must follow the OPTION section and have nothing after them,
  723. except for the END statement (See Introduction of MCL Commands).
  724. They start with the PROC(key,type) statement where key is
  725. the same key used in the OPTION command the procedures is to be linked
  726. to, and type is either SELECT, EXEC, or DONE dependent on the class
  727. of the procedure. The procedure MUST be terminated by PROC END.
  728.  
  729. An OPTION command may have any combination of procedures linked to it.
  730. This could allow very complicated job streams to be run. For an illustration
  731. of this complexity try executing the PROCDEMO menu by typing MENU PROCDEMO
  732. and pressing Enter (under the DOS ready prompt).
  733.  
  734. OPTION commands and nested procedures are NOT allowed. This is a very
  735. simple MCL command re-routing which should not be abused or undesired
  736. results may result.
  737.  
  738. Example Procedures:
  739.  
  740.     PROC(F3,SELECT)       PROC(F3,EXEC)              PROC(F3,DONE)
  741.     FILL(0,5)," ",80      SCREEN(B)                  SCREEN(B)
  742.     NORMAL                NORMAL                     .(0,0)"BACKUP DONE"
  743.     SETATTR               SETTIME                    .(0,2)"Remove diskette"
  744.     .(0,5)"BACKUP FILES"  TIME(65,0)                 .(0,3)"and press Enter"
  745.     PROC END              .(0,0)"*** OPTION F3 ***"  WAIT(ENTER)
  746.                           .(0,2)"Insert diskette"    PROC END
  747.                           .(0,3)"and press Enter"
  748.                           WAIT(ENTER)
  749.                           PROC END
  750.  
  751. The first procedure, a SELECT procedure, will display it's information text
  752. after erasing the line that was there previously. This can be an effective
  753. way of providing additional information on the current highlighted OPTION
  754. for the user, without necessarily executing the current selection.
  755.  
  756. The second procedure, an EXEC procedure, will clear the screen, make the time
  757. the NORMAL color, place it in the upper right-hand corner, and displays a title
  758. with further instructions. SIMS then waits for the user to press Enter
  759. before execution commences (He could press ESC to return to the SELECT
  760. mode of the menu).
  761.  
  762. The third procedure, a DONE procedure, will, after execution of the program,
  763. clear the screen, display a title and instructions, and will wait for the
  764. user to press Enter before returning to the menu.
  765.  
  766.                                 - 18 -
  767.  
  768.   9  / User Defined Fields
  769.  
  770. ARGUE(x,y,l)        - Defines where the current argument field is
  771.                       located and its length l. The default argument
  772.                       field is 40 characters long, located at (15,24).
  773.  
  774.                       For example,
  775.                       If l=7 then the attribute field is
  776.                       "_______"
  777.  
  778.  
  779. DATE(x,y)           - Defines where the current date is located. The
  780.                       default field is 17 characters long, positioned
  781.                       at (30,0) (default).
  782.  
  783.                       Format: " Tue 19-Jun-1984 "
  784.  
  785.                       If SETDATE is INVISIBLE (black on black), then
  786.                       the displaying of the date is disabled.
  787.  
  788. PASS(x,y)           - Defines where the current password field is
  789.                       located. The field is eight characters long,
  790.                       positioned at (30,22) (default).
  791.  
  792.                       Format: "________"
  793.  
  794. STAT(x,y)           - Defines where the current keyboard status field
  795.                       is located. The field is 11 characters long, positioned
  796.                       at (65,24) (default).
  797.  
  798.                       Format: "CAP NUM SCR"
  799.  
  800.                       If SETSTAT is INVISIBLE (black on black), then
  801.                       the displaying of the status is disabled.
  802.  
  803. TIME(x,y)           - Defines where the current time field is located.
  804.                       The field is 13 characters in length, positioned
  805.                       at (65,0) (default).
  806.  
  807.                       Format: " 07:45:00 PM "
  808.  
  809.                       If SETTIME is INVISIBLE (black on black), then
  810.                       the displaying of the time is disabled.
  811.  
  812.                                 - 19 -
  813.  
  814.   10 / Special Commands
  815.  
  816. ' remark            - Places a remark in the source text file.
  817.                       A comment has no effect on the menu whatsoever,
  818.                       but is used for internal documentation.
  819.  
  820.                       Eg.  ' SUPER-MENU Version 1.00
  821.                            ' Written by David Stewart 31st July, 1984
  822.  
  823. AUTOENTER c         - Will set the AUTOENTER status to c. Valid modes
  824.                       are ON and OFF. The default is ON. This command
  825.                       specifies whether Enter must be pressed after the
  826.                       selection of an OPTION.
  827.  
  828.                       Eg.  AUTOENTER OFF
  829.  
  830. LOCK                - Prevents execution of the menu directly from DOS.
  831.                       This disallows entry to the menu except by passing
  832.                       through prior menus (That might have security
  833.                       or the like active in them). The LOCK command is
  834.                       usually placed near the front of the menu for
  835.                       easy identification, although it need not be.
  836.  
  837.                       Eg.  LOCK
  838.  
  839. END                 - Indicates the end of the menu. It ends the
  840.                       menu conversion at this point.
  841.  
  842.                       Eg.  END
  843.  
  844. KEYCLEAR            - Clears the keyboard buffer upon execution of the
  845.                       command. This is used to prevent "type ahead" in
  846.                       important menus, such as those which have OPTIONS
  847.                       that delete information.
  848.  
  849.                       Eg.  KEYCLEAR
  850.  
  851. SCREEN c            - Allows or disallows consequent SCREEN(m)
  852.                       statements to be executed, c can be either
  853.                       ON or OFF. Default is ON.
  854.  
  855.                       Eg.  SCREEN OFF
  856.  
  857. WAIT(key)           - Suspends menu execution until specified key is
  858.                       pressed. It uses the same key format as the OPTION
  859.                       command except that two new keys, ENTER and ANY are
  860.                       included. The ESC key is always active and will, if
  861.                       the WAIT(key) statement is inside an EXEC procedure,
  862.                       reinvoke the menu where it left off before the
  863.                       selection was executed.
  864.  
  865.                       Eg.  WAIT(ENTER) will wait for Enter to be pressed.
  866.                            WAIT(F1)    will wait for F1 to be pressed.
  867.                            WAIT(ANY)   will wait for any key to be pressed.
  868.  
  869.                                 - 20 -
  870.  
  871.   11 / Effective MENU Creation
  872.  
  873. To create an effective MENU, you first must have a well planned layout.
  874. There are several steps required in this layout.
  875.  
  876. First, separate and list all of the applications that are desired to be
  877. placed under the MENU. If your application involves subdirectories then
  878. refer to Section 16 / Using Subdirectories for more information.
  879.  
  880. For example on your hard disk you may have the following layout:
  881.  
  882.                         ROOT DIRECTORY
  883.                              |
  884.                         COMMAND.COM
  885.                         CHKDSK.COM
  886.                         FORMAT.COM
  887.                         (DOS COMMANDS)
  888.                              |
  889.             -----------------+-----------------
  890.            |                 |                 |
  891.      WORD PROCESSING     ACCOUNTING         RECREATION
  892.  
  893.      \WORDPRO            \ACCT              \FUN
  894.  
  895.      WP.BAT              START.EXE          CRIBBAGE.BAS
  896.                                             POKER.EXE
  897.                                             INVADE.COM
  898.  
  899. Above is a list of the directories and the programs and commands that
  900. we wish to place into menus. Two approaches may be used, a single
  901. menu or multiple menus.
  902.  
  903. If a single menu is used then all of the OPTIONS for the system would
  904. appear on the same screen, but if multiple menus are used then each
  905. separate application would have it's own menu screen.
  906.  
  907. OPTION coding would come next. An example from each application is
  908. given below (assuming that the system is under one menu).
  909.  
  910. OPTION(1,10,10)" WORD PROCESSING ","CD \WORDPRO,\COMMAND.COM/C WP",clear,return
  911. OPTION(2,10,11)" ACCOUNTING ","CD \ACCT,START.EXE",return
  912. OPTION(3,10,12)" CRIBBAGE ","CD \FUN,\BASICA.COM CRIBBAGE",return
  913.  
  914. Screen Design is the next step in menu design. The actual layout is
  915. entirely up to you and your imagination. The SAMPLE menu, USER, has been
  916. provided to give you a starting point in your screen layout design.
  917. This is the most artistic part of the design process, but try to remember
  918. that ultimately the menu will be the users tool, not a work of art.
  919.  
  920. Create, debug, modify, and implement the menu using the steps described in
  921. next section, PART III / MAKING A MENU.
  922.  
  923. Effective MENU creation is a difficult process. Study the demonstration
  924. menus in the archive and experiment with them. The road to more productive
  925. transfer from program to program is open, but it is up to YOU.
  926.  
  927.                                 - 21 -
  928.  
  929.   PART III / MAKING A MENU
  930.  
  931. 12 / Creating a SOURCE MENU............................  22
  932. 13 / The MAKEMENU Program..............................  23
  933.  
  934.                                 - 22 -
  935.  
  936.   12 / Creating a SOURCE MENU
  937.  
  938. The editor is used here to create, modify, and perfect source menu files.
  939. DOS's EDLIN will work adequately, although if another editor is used it
  940. must follow the following quidelines:
  941.  
  942.     - Standard ASCII (extended characters >127 are allowed)
  943.  
  944.     - Tabs and spaces may be placed before the command if it is not
  945.       left-justified on the line.
  946.  
  947.     - ASCII character 026 may NOT be included in the source file, except
  948.       to provide its normal function of end of file indicator.
  949.  
  950.   EDITOR USE:
  951.  
  952.     - If the editor is EDLIN then refer to the DOS manual for proper
  953.       editing and file loading / saving instructions.
  954.  
  955.     - If the editor is not EDLIN, refer to the editor's instruction
  956.       manual for more information on how to use it.
  957.  
  958.     - Backup files are preferred, as they provide limited security for
  959.       the source code in the system, i.e. keep menu source code off of
  960.       the system if it involves passwords and sensitive data. See section
  961.       16 / Passwords and Security for more information.
  962.  
  963.                                 - 23 -
  964.  
  965.   13 / The MAKEMENU Program
  966.  
  967. MAKEMENU.EXE is the menu conversion program. The SIMS run-time module
  968. requires that menus be encoded in a special format before execution
  969. can take place. This conversion takes the source file and creates a
  970. .MEN file with the same filename. The resultant .MEN file will almost
  971. always be smaller, the result of the conversion. Passwords will be
  972. further encoded so that prying eyes cannot corrupt the system's
  973. integrity.
  974.  
  975. The MAKEMENU program may be called in one of two ways:
  976.  
  977.     1) Place parameters directly on the DOS command line.
  978.  
  979.        Eg. MAKEMENU sourcefile,listfile
  980.  
  981.     2) Answer the programs prompts.
  982.  
  983.        Eg.  MAKEMENU
  984.  
  985.        (The screen clears and it displays the following:)
  986.  
  987.        MAKEMENU File Converter V1.00   PUBLIC DOMAIN
  988.        (c) 1984 David Thomas Stewart   SHAREWARE
  989.        $15 fee suggested. CompuServe ID# 73220,1365
  990.  
  991.        Source Filename [.SRC]:
  992.  
  993.        (Respond to the prompt with the name of the source file).
  994.  
  995.        List File [NUL]:
  996.  
  997.        (Respond to the prompt with the name of the list file).
  998.  
  999. NOTE: All of the files must reside in the current directory.
  1000.       No paths are allowed, as they are not supported in this version.
  1001.  
  1002. The Source Filename is the name of the file you wish to convert.
  1003. It assumes an extension of .SRC if no other is specified.
  1004.  
  1005. The List File is where the report on how the menu is doing should go.
  1006. It assumes the NUL device (no output) if no file is specified.
  1007.  
  1008. The supported devices for input/output are: CON, PRN, AUX, COM1, and COM2.
  1009.  
  1010. The MENU will now be converted, any errors reported immediately after the
  1011. offending line and the space left in the menu returned. If there were indeed
  1012. errors, refer to the next section for information on debugging your menu.
  1013.  
  1014. The screen will now show:
  1015.  
  1016. Any more files to convert (Y/N)?
  1017.  
  1018. (Answer Y for another conversion, N to exit to DOS).
  1019.  
  1020.                                 - 24 -
  1021.  
  1022.   PART IV  / MENU MANAGEMENT
  1023.  
  1024. 14 / Using Subdirectories..............................  25
  1025. 15 / Using BATCH Processing and DOS Commands...........  26
  1026. 16 / Security and Passwords............................  28
  1027. 17 / Arguments.........................................  29
  1028.  
  1029.                                 - 25 -
  1030.  
  1031.   14 / Using Subdirectories
  1032.  
  1033. Subdirectories may be used in the SIMS environment if some simple
  1034. guidelines are followed. First, each subdirectory must be proceeded
  1035. by a backslash (\).
  1036.  
  1037. Secondly, the OPTION that calls this subdirectory must include the
  1038. full pathname, dependent on the directory the system is currently in
  1039. at the time the OPTION is invoked.
  1040.  
  1041. Thirdly, if a return to the original directory is desired, then specify
  1042. ,return as an option in the OPTION command. This option applies only
  1043. to programs being loaded, not loading menus. To do a directory change to
  1044. a menu and then to return to the original menu place the following logic
  1045. in your menu source code:
  1046.  
  1047. SOURCE MENU (starting point):
  1048.  
  1049.     option(k,x,y)"LOAD MENU DEST","CD \DESTDIR,MENU DEST"
  1050.  
  1051. DESTINATION MENU (called from Source Menu):
  1052.  
  1053.     option(k,x,y)"RETURN to Source Menu","CD \SOURDIR,MENU SOUR"
  1054.  
  1055. Where SOUR and SOURDIR are the Source Menu's path and name,
  1056. and DEST and DESTDIR are the Destination Menu's path and name.
  1057.  
  1058. Lastly, a rigourous test of all possible actions must be taken to verify
  1059. the proper operation of the MENU.
  1060.  
  1061.                                 - 26 -
  1062.  
  1063.   15 / Using BATCH Processing and DOS Commands
  1064.  
  1065. To use BATCH Processing on the system, all that is required is that the
  1066. names of the files be known. SIMS allows a special option to be specified
  1067. called ,novideo. This option can only be used for the Color/Graphics
  1068. Adapter. To use this special option the first two lines of your BATCH
  1069. file must be:
  1070.  
  1071.        ECHO OFF
  1072.        CLS
  1073.  
  1074. If you use the monochrome display then you can use the above format as
  1075. well, just specify ,clear instead of ,novideo in every instance.
  1076.  
  1077. In all of the following options COMMAND.COM is assumed to be found on the
  1078. default drive, in the root directory. Redirection may be specified in the
  1079. format described in section 7 / The OPTION CONTROL Commands.
  1080.  
  1081. To execute a BATCH file a secondary copy of the command interpreter must
  1082. be loaded. This is done in the OPTION command by:
  1083.  
  1084. OPTION(k,x,y)"TEXT","\COMMAND.COM/C drive:\path\batchname",novideo,wait,beep
  1085.  
  1086. Where drive is the drive, path is the path, and batchname is
  1087. the name of the BATCH file. The options at the end ,wait and ,beep
  1088. allow the MENU to alert you upon completion of the BATCH file.
  1089.  
  1090. For example, the OPTION command:
  1091.  
  1092. OPTION(F1,10,10)"Directory Info","\COMMAND.COM/C INFO",novideo,wait
  1093.  
  1094. will give a wide/paused directory and run CHKDSK if used with this
  1095. batch file INFO.BAT:
  1096.  
  1097.     ECHO OFF
  1098.     CLS
  1099.     DIR/P/W
  1100.     CHKDSK
  1101.  
  1102.  
  1103.                                 - 27 -
  1104.  
  1105. DOS Commands may be included as a replacement for drive:\path\batchname.
  1106.  
  1107. Example:
  1108.  
  1109. To take a directory...
  1110.  
  1111. OPTION(F1,10,10)"DIRECTORY","\COMMAND.COM/C DIR",clear,wait
  1112.  
  1113. To run a specified DOS Command:
  1114.  
  1115. OPTION(F2,10,11)"DOS COMMAND","\COMMAND.COM/C ",clear,argue,wait
  1116.  
  1117. (This will prompt the user to fill in the data after \COMMAND.COM/C).
  1118.  
  1119. The options ,clear and ,wait should be used to clear the
  1120. screen before and wait for the user to read the information on the
  1121. screen after execution of the DOS command. Do not use ,novideo,
  1122. unless you wish the screen to be entirely blank during execution.
  1123.  
  1124. An entirely new copy of the command interpreter may be invoked by:
  1125.  
  1126. OPTION(F3,10,12)"Another DOS","\COMMAND.COM",clear
  1127.  
  1128. (To return to the current SIMS menu, use the DOS command EXIT).
  1129.  
  1130. This will appear to the user as he were in DOS, although it is actually
  1131. only an overlay on SIMS. The DOS command EXIT will return the user
  1132. back to SIMS after all operations are complete.
  1133.  
  1134.                                 - 28 -
  1135.  
  1136.   16 / Passwords and Security
  1137.  
  1138. Security of the system may be performed in three ways:
  1139.  
  1140.   LOCKED MENUS:
  1141.  
  1142. Menus may be locked, that is, preventing direct execution from DOS, by
  1143. specifying a LOCK statement in the menu. It should be placed near the
  1144. front of the menu for easy location, although it may reside anywhere in
  1145. the menu code. This form of protection prevents an unauthorized user to
  1146. bypass previous security menus (involving passwords).
  1147.  
  1148.   PASSWORDS:
  1149.  
  1150. Passwords may be implemented by specifying the ,pass="xxxxxxxx" option
  1151. in the OPTION you wish to protect. The password may be up to eight characters
  1152. in length (xxxxxxxx). The location and color of the password field (default
  1153. color is INVISIBLE) may be specified by the PASS(x,y) and SETPASS commands.
  1154. This form of protection prevents an unauthorized user to execute a particular
  1155. OPTION whether it call a program, transfer to another menu, exit to DOS, or
  1156. perform a NULL operation. An incorrectly entered password will sound a beep
  1157. and will clear the field to the SETATTR color. Future versions of SIMS may
  1158. utilize this space to warn users or provide further information through
  1159. special procedures.
  1160.  
  1161.   SEPARATE SOURCE CODE:
  1162.  
  1163. This is a method of security that is NOT provided by SIMS, but instead must
  1164. be maintained by the menu creator. It involves separating the source code
  1165. from the converted menus, off of the machine on a separate diskette, kept
  1166. in a safe place. This prevents users from examining and perhaps modifying
  1167. existing menus in order to gain access to them. This security feature also
  1168. provides limited data backup.
  1169.  
  1170.                                 - 29 -
  1171.  
  1172.   17 / Arguments
  1173.  
  1174. Arguments are additions to existing programs, to specify data or
  1175. parameters. The field ARGUE(x,y,l) and SETARGUE are used to define where
  1176. the data window is to be placed, its length, and its color. The following
  1177. is an illustration of an ARGUMENT:
  1178.  
  1179.   SAMPLE MENU:
  1180.  
  1181.        SCREEN(N)
  1182.        INVERSE
  1183.        SETARGUE
  1184.        ARGUE(10,18,40)
  1185.        OPTION START
  1186.        OPTION(F1,10,10)"An example of arguments","\CHKDSK.COM ",argue,clear
  1187.        OPTION(F2,10,11)"Exit to DOS","EXIT"
  1188.        OPTION END
  1189.        END
  1190.  
  1191. The first OPTION will prompt you for the data to be placed after the space in
  1192. "\CHKDSK.COM ". For example if you responded to the prompt with a /F/V and then
  1193. pressed Enter, then the actual OPTION would look to SIMS as "\CHKDSK.COM /F/V".
  1194.  
  1195. To exit from an undesired argument back into the current menu's select mode,
  1196. press the ESC key. This will re-invoke the current menu and return control to
  1197. you once again.
  1198.  
  1199.                                 - 30 -
  1200.  
  1201.   PART V  / APPENDICES
  1202.  
  1203. Appendix A / Summary of MCL Reference Commands.........  31
  1204. Appendix B / Error Messages............................  33
  1205. Appendix C / Customer Support..........................  35
  1206.  
  1207. Index..................................................  36
  1208.  
  1209.                                 - 31 -
  1210.  
  1211.   Appendix A / Summary of Reference MCL Commands
  1212. 
  1213. Type Command:                 Argument(s):                 Function:
  1214. ----------------------------------------------------------------------------------------------------------
  1215. SP   ' text                   text (optional)              Denotes remark
  1216. VI   .(x,y)"text"             coords,text                  Prints text at specified coords
  1217. VI   ."text"                  text                         Prints text at last cursor position
  1218. UF   ARGUE(x,y,s)             coords,length                Places argument field at specified coords
  1219. SP   AUTOENTER                ON / OFF                     Changes AUTOENTER status
  1220. VI   BACKGROUND(c)            color                       Changes background color
  1221. VI   BLINK                    ON / OFF                     Changes blink status
  1222. VI   BOX(a,b)-(x,y),"z"       tl coords,br coords,char     Draws a rectangular box
  1223. VI   BORDER(c)                color                       Changes & Sets border color
  1224. UF   DATE(x,y)                coords                       Places date at specified coords
  1225. SP   END                      none                         Denotes the end of the MENU
  1226. VI   FIELD(a,b)-(x,y)         tl coords,br coords          Fills rectangular area with attribute
  1227. VI   FILL(x,y),"z",s          coords,char,length           Fills area with character
  1228. VI   FOREGROUND(c)            color                       Change foreground color
  1229. VI   INVERSE                  none                         Change to INVERSE color
  1230. VI   INVISIBLE                none                         Change to INVISIBLE color
  1231. SP   KEYCLEAR                 none                         Clears keyboard buffer
  1232. SP   LOCK                     none                         Prevents execution of menu from DOS
  1233. VI   NORMAL                   none                         Change to Normal color
  1234. OP   OPTION(k,x,y),"t","c",o  key,coords,text,command,opt  Places specified OPTION into table
  1235. OP   OPTION                   START / END                  Denotes START and END of OPTION block
  1236. UF   PASS(x,y)                coords                       Places password field at specified coords
  1237. OP   PROC(k,m)                key,SELECT/EXEC/DONE         Denotes the start of a procedure
  1238. OP   PROC END                 none                         Denotes the end of a procedure
  1239. VI   SCREEN(m)                B/N                          Sets current screen mode
  1240. SP   SCREEN                   ON / OFF                     Allows / Disallows SCREEN(m) command
  1241. VI   SETARGUE                 none                         Sets current argue attribute
  1242. VI   SETATTR                  none                         Sets current write attribute
  1243. VI   SETDATE                  none                         Sets current date attribute
  1244. VI   SETHIGH                  none                         Sets current highlight attribute
  1245. VI   SETOPTION                none                         Sets current option attribute
  1246. VI   SETPASS                  none                         Sets current password attribute
  1247. VI   SETSTAT                  none                         Sets current status attribute
  1248. VI   SETTIME                  none                         Sets current time attribute
  1249. UF   STAT(x,y)                coords                       Places status field at specified coords
  1250. UF   TIME(x,y)                coords                       Places time at specified coords
  1251. VI   UNDERLINE                DIM / BRIGHT                 Changes underline status
  1252. SP   WAIT(k)                  key                          Suspends execution of menu until key is pressed
  1253. 
  1254. Legend:
  1255.  
  1256. VI - Video Command
  1257. SP - Special Command
  1258. UF - User Defined Field Command
  1259. OP - Option or Procedure Command
  1260.  
  1261.                                 - 32 -
  1262.  
  1263. color  - A valid color. One of the following:
  1264.  
  1265.          BLACK BLUE  GREEN  CYAN  RED  MAGENTA  BROWN  WHITE
  1266.          GREY  BLUE+ GREEN+ CYAN+ RED+ MAGENTA+ YELLOW WHITE+
  1267.  
  1268. coords  - Screen coordinates (a,b),(x,y)
  1269.           a,x - Representative of columns across screen (Range 0-79)
  1270.           b,y - Representative of rows along screen (Range 0-24)
  1271.  
  1272.          (tl - Top left corner, br - Bottom right corner)
  1273.  
  1274. key     - Key. Can be any keyboard key (A-Z, 0-9, Punctuation)
  1275.           a function key (F1,F2...F9,F10), ESC, INS, or DEL to
  1276.           activate the OPTION selection. A,C,S are the function key
  1277.           prefixed for Alt, Control, and Shift function keys.
  1278.  
  1279. char    - ASCII character to use for an operation. Any ASCII character
  1280.           may be used, except 026d (Used for End of File Indicator).
  1281.  
  1282. text    - Text to be displayed at specified cursor coordinates. May also
  1283.           be OPTION selection text.
  1284.  
  1285. length  - Number of characters to place on screen. (FILL)
  1286.  
  1287. command - Command for option. May specify a filename, E.G. "A:\JUMP.EXE",
  1288.           or a menu command as specified below:
  1289.  
  1290.           MENU xxxxxxxx - Transfer control to menu xxxxxxxx  Eg. "MENU SECOND"
  1291.           EXIT          - Exit to DOS                        Eg. "EXIT"
  1292.           CD \path,     - Used to change directory.          Eg. "CD \DAVE,xxxxx"
  1293.  
  1294. options - Optional tasks to be performed for a desired program execution.
  1295.           The eight options available (in order of execution) are:
  1296.  
  1297.           <<< SELECT PROCEDURE >>>
  1298.  
  1299.           ,pass="password"  - Allows entry only with password.
  1300.  
  1301.           <<< EXEC PROCEDURE >>>
  1302.  
  1303.           ,argue            - Prompts for arguments before loading.
  1304.           ,clear            - Clear the screen before loading (border too).
  1305.           ,novideo          - Resets video OFF (Assumes ,clear).
  1306.           ,noclock          - Disables displaying of clock.
  1307.  
  1308.           <<< EXECUTE PROGRAM / MENU / NULL OPERATION >>>
  1309.  
  1310.           ,return           - Returns to the directory system was in
  1311.                               before execution.
  1312.  
  1313.           ,beep             - Chirps speaker for attention after execution.
  1314.           ,wait             - Waits for a key after execution.
  1315.  
  1316.           <<< DONE PROCEDURE >>>
  1317.  
  1318. none    - There are no options (implicit).
  1319.  
  1320.                                 - 33 -
  1321.  
  1322.   Appendix B / Error Messages
  1323.  
  1324. MAKEMENU Conversion Errors
  1325.  
  1326. Error:                           Reason:
  1327. ------------------------------------------------------------------------------
  1328. Syntax Error                     The converter did not understand the line.
  1329.  
  1330. Missing Bracket                  There is a missing bracket in the line.
  1331.  
  1332. Missing Comma                    There is a missing comma in the line.
  1333.  
  1334. Cursor Values out of range       Cursor values are invalid.
  1335.                                  The valid ranges are (0-79,0-24).
  1336.  
  1337. Illegal SCREEN Mode              Illegal SCREEN Mode. Modes are B/W and COLOR.
  1338.  
  1339. Illegal Color                    Illegal color. See Appendix A for colors.
  1340.  
  1341. Illegal BLINK Mode               Illegal BLINK Mode. Valid modes are ON & OFF.
  1342.  
  1343. No End statement                 Menu was not terminated with an END.
  1344.  
  1345. No OPTION START statement        No OPTION START statement exists in the menu.
  1346.  
  1347. No OPTIONS specified             No OPTIONS were specified in OPTION block.
  1348.  
  1349. MENU Too Large                   Menu is too large to manage.
  1350.                                  Split into two or more menus (overlays).
  1351.  
  1352. Illegal key specified            Key specified in option statement is bad.
  1353.                                  See OPTION command for keys.
  1354.  
  1355. Illegal OPTION field specified   Option in OPTION statement is invalid.
  1356.                                  See OPTION command for options.
  1357.  
  1358. Illegal UNDERLINE Mode           Illegal UNDERLINE Mode.
  1359.                                  Valid Modes are DIM and BRIGHT.
  1360.  
  1361. Bad Procedure Link               Procedure has attempted to link
  1362.                                  to a non-existent OPTION.
  1363.  
  1364. Bad Procedure Mode               Bad Procedure Mode.
  1365.                                  Valid Modes are SELECT, EXEC, and DONE.
  1366.  
  1367. Bad Procedure Data               There is an illegal statement
  1368.                                  in the procedure.
  1369.  
  1370. Bad Text Delimiter               There is a missing or invalid
  1371.                                  delimiter in the text line.
  1372.  
  1373.                                 - 34 -
  1374.  
  1375. MAKEMENU Hardware Errors
  1376.  
  1377. Error:                           Reason:
  1378. ------------------------------------------------------------------------------
  1379. xxxxxxx.xxx not found            The source file was not found.
  1380. Device I/O Error.                The LIST device is experiencing difficulties.
  1381. Diskette Full.                   The diskette is full.
  1382. Bad File Name.                   A bad filename was entered.
  1383. Device Unavailable.              Attempt to LIST to a non-existent device.
  1384. Diskette Write Protected.        Attempt to MAKEMENU on a writeprotected disk.
  1385. Disk Drive Not Ready.            Diskette missing or drive door not closed.
  1386. Disk Media Error.                There is a media problem on the disk.
  1387.  
  1388.  
  1389. SIMS run-time module Errors
  1390.  
  1391. Error:                           Reason:
  1392. ------------------------------------------------------------------------------
  1393. Incorrect DOS Version.           SIMS does not support this DOS version.
  1394. Specified Menu Not Found.        SIMS could not find the desired menu.
  1395. Errors found in Menu.            SIMS could not execute this menu.
  1396. Invalid MENU Specified           The menu file is of a foreign format.
  1397. Attempted Security Violation     SIMS was told to load a LOCKED menu from DOS.
  1398.  
  1399.                                 - 35 -
  1400.  
  1401.   Appendix C / Customer Support and Updates
  1402.  
  1403. As I said in the introduction, I will only offer advice and technical
  1404. support to those who contribute via the SHAREWARE concept.  Users who do
  1405. contribute will be notified when updates and new products are available.
  1406. Anyone wishing to offer advice and suggestions are most welcome to do so.
  1407.  
  1408. I may be reached on CompuServe at ID# 73220,1365, or on The PEARL BBS in
  1409. Waterloo, Ontario, Canada, under my name, David Stewart.
  1410.  
  1411. Telephone support (or any support for that matter) is available to
  1412. registered users only. My voice line is (519)-740-2878.
  1413.  
  1414. The most up to date version of SIMS is always available on The PEARL, which
  1415. may be reached at (519)-576-6754, 24 hrs. a day.  Please note that the
  1416. PEARL is a pay board (normally $25/year), but I have made arrangements
  1417. with the Sysop to obtain memberships for SIMS subscribers who include
  1418. an extra five dollars with their subscription, along  with their first
  1419. name, last name, and a password to use on the board. One restriction must
  1420. be made on this offer... you must live at least 125 miles outside the
  1421. Kitchener-Waterloo, Ontario, Canada area in order to qualify. You will be
  1422. validated immediately upon my receiving your cheque or money order.
  1423.  
  1424. Even if you do not wish to have a PEARL membership, you can still see what
  1425. changes and revisions have been made to date by going to the bulletins
  1426. section of the board. You do not have to be a registered PEARL user to use
  1427. this feature.
  1428.  
  1429. Those of you who register your copy of SIMS and wish to receive an update to
  1430. the latest version (from me and not The PEARL), please include an extra $10.00
  1431. with your registration to cover materials and shipping costs. I will send you
  1432. the latest version of SIMS upon receipt of your registration. Please specify
  1433. the version of SIMS that you currently have.  If there have not been any
  1434. updates made since your version, I will wait until the next release of SIMS
  1435. to send your update.
  1436.  
  1437. Optionally, you may include a diskette and diskette mailer with your
  1438. registration plus $2.50 to cover shipping costs, and I will send you the
  1439. latest version of SIMS.
  1440.  
  1441. If you do have a question, or a bug report, or whatever, in your
  1442. correspondence, please indicate the following:
  1443.  
  1444. 1)  The version of SIMS that you are using.
  1445. 2)  Your hardware configuration (Model, memory size, printer, etc.)
  1446. 3)  Any resident software that you have loaded in memory at the time.
  1447.     (i.e. Sidekick, SuperKey, Disk Caches, Print Spoolers, Ramdisks,
  1448.     etc.)
  1449.  
  1450. This information will help me to track any problems and to suggest
  1451. reasonable solutions to your problems.
  1452.  
  1453.     David Thomas Stewart
  1454.     Synergy Development
  1455.     P.O.BOX 3132
  1456.     Cambridge, Ontario
  1457.     Canada N3H 4S6
  1458.     Voice: (519) 740-2878
  1459.  
  1460.                                 - 36 -
  1461.  
  1462.   Index
  1463.  
  1464. Arguments, 29
  1465. Batch Processing, 26
  1466. Colors, 14,37
  1467. Compatibility, 4
  1468. Cursor Keys, 7
  1469. Customer Support, 35
  1470. Editors
  1471.     Compatibility, 22
  1472.     EDLIN, 22
  1473. Effective Menu Creation, 20
  1474. Error Messages, 33,34
  1475. Keys, 7,14
  1476. Layout, 10
  1477. MAKEMENU
  1478.     Description of, 4,23
  1479.     Usage, 23
  1480. MCL (Menu Control Language)
  1481.     OPTION CONTROL Commands, 14
  1482.     Procedures, 17
  1483.     Reference, 31
  1484.     Special Commands, 19
  1485.     Structure, 10
  1486.     User-Defined Fields, 18
  1487.     Video Commands, 11
  1488. Passwords, 28
  1489. Procedures, 17
  1490. Sample Menus, 8
  1491.